/* 
 * 创建日期 2011-3-30
 *
 * 成都天和软件公司
 * 电话：028-85425861 
 * 传真：028-85425861-8008 
 * 邮编：610041 
 * 地址：成都市武侯区航空路6号丰德万瑞中心B座1001 
 * 版权所有
 */
package  org.fantasy.cpp.core.service;

import java.util.List;
import java.util.Map;

import  org.fantasy.cpp.core.pojo.ChartConfig;
import  org.fantasy.cpp.core.pojo.QueryConfig;
import  org.fantasy.cpp.core.pojo.QueryItem;
import  org.fantasy.cpp.core.pojo.QueryPage;
import  org.fantasy.cpp.core.pojo.QueryTemplet;
import  org.fantasy.cpp.core.pojo.TableConfig;
import  org.fantasy.common.db.bean.Row;
import  org.fantasy.common.util.ParamMap;

/**
 * 配置服务
 * 
 * @author 王文成
 * @version 1.0
 * @since 2011-3-30
 */
public interface ConfigService {
	
	/**
	 * 取得页面配置
	 * @param pageId
	 * @return
	 * @throws Exception
	 */
	QueryPage getQueryPage(Long id) throws Exception;

	/**
	 * 保存查询页面配置
	 * @param paramMap
	 * @throws Exception
	 */
	QueryPage saveQueryPage(ParamMap<String,Object> params) throws Exception;
	
	/**
	 * 保存页面查询条件
	 * @param paramMap
	 * @throws Exception
	 */
	void saveQueryPageItems(Long pageId,String items) throws Exception;
	
	/**
	 * 注销查询页面
	 * @param paramMap
	 * @throws Exception
	 */
	void removeQueryPage(String id) throws Exception;
	
	
	/**
	 * 取得页面配置
	 * @param pageId
	 * @return
	 * @throws Exception
	 */
	QueryConfig getQueryConfig(Long queryId) throws Exception;
	
	/**
	 * 执行查询
	 * @param id
	 * @throws Exception
	 */
	List<Row> executeQueryConfig(Long queryId, Map<String,Object> qryMap) throws Exception;
	
	/**
	 * 保存查询配置
	 * @param paramMap
	 * @throws Exception
	 */
	QueryConfig saveQueryConfig(ParamMap<String,Object> params) throws Exception;
	
	/**
	 * 取得表格配置
	 * @param pageId
	 * @return
	 * @throws Exception
	 */
	TableConfig getTableConfig(Long id) throws Exception;
	
	/**
	 * 保存表格配置
	 * @param paramMap
	 * @throws Exception
	 */
	TableConfig saveTableConfig(ParamMap<String,Object> params) throws Exception;
	
	/**
	 * 保存图表配置
	 * @param paramMap
	 * @throws Exception
	 */
	ChartConfig saveChartConfig(ParamMap<String,Object> params) throws Exception;
	
	/**
	 * 取得图表配置
	 * @param pageId
	 * @return
	 * @throws Exception
	 */
	ChartConfig getChartConfig(Long id) throws Exception;
	
	/**
	 * 取得查询条件
	 * @param pageId
	 * @return
	 * @throws Exception
	 */
	QueryItem getQueryItem(Long id) throws Exception;
	
	/**
	 * 删除查询条件
	 * @param pageId
	 * @return
	 * @throws Exception
	 */
	void removeQueryPageItems(Long pageId) throws Exception;
	
	/**
	 * 取得查询条件列表
	 * @return
	 * @throws Exception
	 */
	List<QueryItem> getQueryItemList() throws Exception;
	
	/**
	 * 取得查询条件列表
	 * @param pageId
	 * @return
	 * @throws Exception
	 */
	List<QueryItem> getSelectQueryItemList(Long pageId) throws Exception;
	
	/**
	 * 取得未选择的查询条件
	 * @param pageId
	 * @return
	 * @throws Exception
	 */
	List<QueryItem> getUnSelectQueryItemList(Long pageId) throws Exception;
	
	/**
	 * 保存查询条件
	 * @param paramMap
	 * @throws Exception
	 */
	QueryItem saveQueryItem(ParamMap<String,Object> params) throws Exception;
	
	/**
	 * 删除查询条件
	 * @param id
	 * @throws Exception
	 */
	void removeQueryItem(Long id) throws Exception;
	
	/**
	 * 取得页面模板
	 * @param pageId
	 * @return
	 * @throws Exception
	 */
	QueryTemplet getQueryTemplet(Long id) throws Exception;
	
	/**
	 * 保存页面模板
	 * @param paramMap
	 * @throws Exception
	 */
	QueryTemplet saveQueryTemplet(ParamMap<String,Object> params) throws Exception;
	
	/**
	 * 猜测表头配置
	 * @param queryId
	 * @return
	 * @throws Exception
	 */
	String guessTableConfig(Long queryId) throws Exception;
	
	/**
	 * 猜测图表配置
	 * @param queryId
	 * @return
	 * @throws Exception
	 */
	String guessChartConfig(Long tableId) throws Exception;
}
